Neste relatório, iremos explorar os dados da atriz Julia Roberts. Os dados foram extraÃdos do RottenTomatoes.
## ANTES DE USAR
# Para criar data/movies.csv
import_data("julia_roberts") # ou com o ator/atriz que você escolher
## Loading required package: rvest
## Loading required package: xml2
##
## Attaching package: 'rvest'
## The following object is masked from 'package:purrr':
##
## pluck
## The following object is masked from 'package:readr':
##
## guess_encoding
## Warning in rlang::eval_tidy(~as.numeric(gsub("[$|M]", "", BOXOFFICE)),
## <environment>): NAs introduzidos por coerção
filmes = read_imported_data()
O objetivo aqui, é fazer um agrupamento dos filmes da atriz levando em consideração duas variáveis: bilheteria e avaliação. Primeiro, vamos analisar separadamente cada uma dessas variáveis, utilizaremos também o ano de lançamento de cada filme para observar a variação durante o tempo.
p = filmes %>%
ggplot(aes(size = 3, x = ano,
y = bilheteria,
text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m",
"\nAvaliação:", avaliacao,
"\nAno:",ano))) +
geom_point(color = paleta[1]) +
labs(title = "Variação da bilheteria ao longo dos anos", y = "Bilheteria", x = "Ano de lançamento")
ggplotly(p, tooltip = "text")
p = filmes %>%
ggplot(aes(size = 3, x = ano,
y = avaliacao,
text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m",
"\nAvaliação:", avaliacao,
"\nAno:",ano))) +
geom_point(color = paleta[5]) +
labs(title = "Variação da avaliação ao longo dos anos", y = "Avaliação", x = "Ano de lançamento")
ggplotly(p, tooltip = "text")
p = filmes %>%
ggplot(aes(x = "", y = bilheteria, text = paste("Filme:",filme,
"\nBilheteria:",
bilheteria,"m"))) +
geom_jitter(width = .05, alpha = .3, size = 3) +
labs(x = "", y="Bilheteria")
ggplotly(p, tooltip="text")
m_transformado = filmes %>%
mutate(b = log10(bilheteria))
summary(m_transformado %>% select(bilheteria, b))
## bilheteria b
## Min. : 28.20 Min. :1.450
## 1st Qu.: 35.60 1st Qu.:1.551
## Median : 66.60 Median :1.823
## Mean : 74.49 Mean :1.803
## 3rd Qu.: 93.10 3rd Qu.:1.969
## Max. :183.40 Max. :2.263
n_clusters = 4
km = m_transformado %>%
select(b, avaliacao) %>%
kmeans(centers = n_clusters, nstart = 20)
agrupado = km %>%
augment(m_transformado)
m_transformado = filmes %>%
mutate(bilh_scaled = as.vector(scale(log10(bilheteria))),
av_scaled = as.vector(scale(avaliacao)))
agrupa_bilh_avaliacao<- function(df, k){
df %>%
select(bilh_scaled, av_scaled) %>%
kmeans(centers = k,
nstart = 20) %>%
augment(df) %>%
mutate(.cluster = as.character(.cluster))
}
agrupamentos = tibble(k = 1:6) %>%
mutate(agrupamento = map(k, ~ agrupa_bilh_avaliacao(m_transformado, .))) %>%
unnest(agrupamento)
agrupamentos %>%
ggplot(aes(
x = avaliacao,
y = bilheteria,
label = filme,
colour = .cluster
)) +
geom_point(size = 2, alpha = .8) +
facet_wrap( ~ k) +
scale_y_log10()
p = agrupado %>%
ggplot(aes(x = avaliacao, y = bilheteria, color = .cluster, label = filme)) +
geom_point(size = 2) +
scale_y_log10()
ggplotly(p)